Software development environments exist that aid software developers in writing program code. A software development environment may include a source code editor for entering source code, one or more build automation tools, and a code debugger. Examples of commercially-available software development environments include Microsoft® WebMatrix® and Microsoft® Visual Studio®, provided by Microsoft Corporation of Redmond, Wash., JDeveloper® and NetBeans®, provided by Oracle Corporation of Redwood City, Calif., Adobe® Dreamweaver®, provided by Adobe Systems Inc. of San Jose, Calif., Eclipse IDE provided by Eclipse Foundation of Ontario, Canada, ActiveState® Komodo® provided by ActiveState Software Inc. of Vancouver, British Columbia, and IntelliJ® IDEA, provided by JetBrains, s.r.o., of Prague, Czech Republic.
Some conventional software development environments provide assistance to developers writing code by presenting lists of possible code “completions” and documentation for those completions, based on one or more characters (e.g., letters, symbols, or a combination thereof) that a user has typed into a source code file. The presentation of automatically-determined code completions is referred to herein as “auto-completion.” In Microsoft® WebMatrix® and Microsoft® Visual Studio®, auto-completion is implemented by functionality referred to as IntelliSense®. IntelliSense® represents one of the most important advancements in developer productivity over the past 15 years. Scoped, valid code completion suggestions improve program quality before the program is ever executed, and, at a minimum, increase typing productivity.
In accordance with certain conventional auto-completion implementations, the performance of auto-completion involves analyzing one or more characters that a programmer has input into a source code editor to identify a set of code entities that are candidates for auto-completion. All candidate code entities are presented to the programmer simultaneously within a single drop-down menu. If the programmer selects one of the code entities in the menu, then the input of the selected code entity into the source code editor is completed automatically. This approach to auto-completion can be problematic if there are a large number of candidate code entities, as it may be difficult for the programmer to find a particular code entity of interest from among the long list of code entities.
By way of example, Hypertext Markup Language 5 (HTML 5) provides programmers with the ability to embed custom data attributes on all HTML elements. According to the HTML 5 Specification, such custom data attributes must have an attribute name that is prefixed with “data-”. It is thus possible that a single HTML document many include a very large number of “data-” attributes. In accordance with a conventional auto-completion implementation, when a programmer enters “d” into an HTML editor, a single drop-down menu of candidate code entities may be presented that includes every “data-” attribute within the document. If the HTML document includes a very large number of “data-” attributes, this list may be so long that it may be difficult for the programmer to find a particular code entity of interest from among the long list of code entities. There are other constructs within HTML5, such as Accessible Rich Internet Applications (ARIA) attributes that are prefixed with “aria-”, which may give rise to the same issue.